package modelo;

public class Profesor extends Persona implements Cloneable
{
    private String titulo;


    public Profesor()
    {
        titulo="";
    }

    public Profesor(String cedula,String nombre,String apellido,String titulo)
    {
        super(cedula,nombre,apellido);
        this.titulo= titulo;
    }

    public String getTitulo() {
        return titulo;
    }

    public void setTitulo(String titulo) {
        this.titulo = titulo;
    }  
    
    public boolean validar() 
    {
        boolean valido= true;
        
        if (!this.getCedula().matches("[V|v|e|E]-[1-9][0-9]{6,7}") ||
            this.getNombre().isEmpty() || this.getApellido().isEmpty() ||
            this.getTitulo().isEmpty())
            valido=false;
        
        return valido;
    }
    
    public void evaluarEstudiante(Estudiante objEstudiante)
    {
        float notaFinal=0.0f;
        
        for (float nota:objEstudiante.getNotas())
           notaFinal += nota;
        
        notaFinal /= 3;
        
        objEstudiante.setNotaFinal(notaFinal);
        
        if (notaFinal < 9.5)
            objEstudiante.setStatus(false);
        else
            objEstudiante.setStatus(true);
    }

    /*Este metodo devuelve un objeto Profesor con el mismo valor de sus atributos
     (una copia del profesor)
     -Esta sobreescribiendo al metodo clone() de Object
     */
   
    @Override
    public Object clone() throws CloneNotSupportedException
    {   
        return super.clone();
    }

    /*Este metodo devuelve una cadena de texto asociada con un objeto Profesor
      - Esta sobreescribiendo el metodo toString() de Object
     */
    @Override
    public String toString()
    {
        String cadena="";

        /*System.getProperty("line.separator") devuelve el separator
          de linea asociado con el Sistema Operativo
          toUpperCase() devuelve la cadena en Mayusculas
         */
        
        cadena= "Cedula: " + this.getCedula().toUpperCase() + System.getProperty("line.separator") +
                "Nombre: " + this.getNombre() + System.getProperty("line.separator") +
                "Apellido: " + this.getApellido() + System.getProperty("line.separator") +
                "Titulo: " + this.getTitulo() + System.getProperty("line.separator");
        
        return cadena;
    }
    
}
